package com.sinochem.es.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;

/**
 * <p>
 * 评估资源管理政策发文信息表
 * </p>
 *
 * @author Barry,Yu
 * @since 2022-02-08
 */
@Data
@Document(indexName = "rm_policy_publication",replicas = 1,shards = 5)
public class RmPolicyPublication extends Model<RmPolicyPublication> {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @Field(type = FieldType.Keyword)
    @TableId(type = IdType.ID_WORKER_STR)
    private String id;

    /**
     * 标题
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String title;

    /**
     * 流水号
     */
    @Field(type = FieldType.Keyword) // 这个不分词 可以用于关键字查询  具体哪个需要分词 哪个不分词 你要自己确定
    private String serialNumber;

    /**
     * 发文字号
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String policyNumber;

    /**
     * 效力级别(0:中央级,1:国务院级,2:部委级,3:部委司局和直属事业单位级,4:省（直辖市、计划单列市）级,5:省（直辖市、计划单列市）属事业单位级,6:地市级,7:地市所属事业单位级,8:其他)
     */
    @Field(type = FieldType.Auto)
    private String effectiveLevel;

    /**
     * 效力级别id
     */
    @Field(type = FieldType.Auto)
    private Integer effectiveLevelId;

    /**
     * 省份
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String province;

    /**
     * 时效性(0:无有效期限，正在执行有效,1:有有效期限，正在执行有效,2:已废止)
     */
    @Field(type = FieldType.Auto)
    private String timely;
    @Field(type = FieldType.Auto)
    private Integer timelyId;

    /**
     * 发文单位分类(废弃)
     */
    private String issuerClass;

    /**
     * 公布机关
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String issuer;

    private Integer issuerId;

    /**
     * 协同发文单位
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String assIssuer;
    @Field(type = FieldType.Auto)
    private Integer assIssuerId;

    /**
     * 公布日期
     */
    @Field(type = FieldType.Date)
    private Date publicDate;

    /**
     * 实施日期
     */
    @Field(type = FieldType.Auto)
    private Date implementDate;

    /**
     * 废止时间
     */
    @Field(type = FieldType.Auto)
    private Date revocateDate;

    /**
     * 题注
     */
    @Field(type = FieldType.Auto)
    private String caption;

    /**
     * 主题词
     */
    @Field(type = FieldType.Keyword)
    private String keyword;

    /**
     * 主题分类(0:国家科技创新领导体制,1:科技成果转化,2:科技人才发展,3:产学研协同创新,4:中央财政科技计划和经费管理改革,5:科技治理制度,6:区域创新发展,7:科技开放合作,8:科技创新立法)
     */
    @Field(type = FieldType.Auto)
    private String titleClass;

    @Field(type = FieldType.Auto)
    private Integer titleClassId;

    /**
     * 公文类型(0:决定,1:通知,2:通报,3:报告,4:请示,5:批复,6:意见,7:函,8:会议纪要,9:命令（令）,10:通告,11:议案,12:其他)
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String policyClass;

    @Field(type = FieldType.Auto)
    private Integer policyClassId;

    /**
     * 特色分类标识
     */
    @Field(type = FieldType.Auto)
    private String featuredClass;

    /**
     * 数据来源
     */
    @Field(type = FieldType.Auto)
    private String dataSource;

    /**
     * 正文
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String text;

    /**
     * 父级政策id
     */
    @Field(type = FieldType.Auto)
    private String parentPolicyid;

    /**
     * 专题id
     */
    @Field(type = FieldType.Auto)
    private String topicId;

    /**
     * 附件id
     */
    @Field(type = FieldType.Auto)
    private String attachId;

    /**
     * 审核状态（0:待审核,1:审核未通过,2:审核通过）
     */
    @Field(type = FieldType.Auto)
    private String status;

    /**
     * 是否删除（0：未删除，1：已删除）
     */
    @Field(type = FieldType.Auto)
    private String isDelete;

    /**
     * 点击量
     */
    @Field(type = FieldType.Auto)
    private Integer extend;
    @Field(type = FieldType.Auto)
    private Date createTime;
    @Field(type = FieldType.Auto)
    private String createId;
    @Field(type = FieldType.Auto)
    private String createName;

    /**
     * 是否废止旧政（0:是，1:否）
     */
    @Field(type = FieldType.Auto)
    private Integer isReplaceOld;

    /**
     * 同时废止旧政id
     */
    @Field(type = FieldType.Auto)
    private String oldpolicyId;

    /**
     * 旧政名称
     */
    @Field(type = FieldType.Auto)
    private String oldpolicyName;

    /**
     * 是否被新政替代（0:是，1:否）
     */
    @Field(type = FieldType.Auto)
    private Integer isReplaced;

    /**
     * 新政id
     */
    @Field(type = FieldType.Auto)
    private String newpolicyId;

    /**
     * 新政名称
     */
    @Field(type = FieldType.Auto)
    private String newpolicyName;
    @Field(type = FieldType.Auto)
    private String pdfId;
    @Field(type = FieldType.Auto)
    private String textNonformat;

}
